/**
 * 
 */
package com.raymond.cmpp.common.packet;



/**
 * 连接响应
 *
 * @author :  raymond
 * @version :  V1.0
 * @date :  2021-08-05 11:26
 */
public enum ConnectResponse{
    /**
     * 状态
     * 0：正确
     * 1：消息结构错
     *  2：非法源地址
     *  3：认证错
     *  4：版本太高
     *   5~ ：其他错误
     */
    STATUS(4),
    /**
     * ISMG认证码，用于鉴别ISMG。
     * 其值通过单向MD5 hash计算得出，表示如下：
     * AuthenticatorISMG =MD5（Status+AuthenticatorSource+shared secret），Shared secret 由中国移动与源地址实体事先商定，AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。
     *  认证出错时，此项为空。
     */
    AUTHENTICATOR_ISMG(16),
    /**
     * 服务器支持的最高版本号，对于3.0的版本，高4bit为3，低4位为0
     */
    VERSION(1);
    private int length;

    private final static int BODY_LENGTH = STATUS.length +AUTHENTICATOR_ISMG.length+VERSION.length;

    ConnectResponse(int length) {
        this.length = length;
    }

    public int getLength() {
        return length;
    }
    public static int getBodyLength() {
        return BODY_LENGTH;
    }
}
